For example, the CPU sometimes malfunctions by errors temporarily reversing the bit data of a memory element such as a Flip-Flop due to the effect of cosmic radiation. In order to correct these errors, when an error is detected, the content of a register file is restored from a delayed register file, which holds an execute completion state of an [Instruction N] correctly executed before this error, and the rollback control that re-executes an instruction from the next instruction [Instruction N+1] of the [Instruction N] is performed.
For example, Japanese Patent Laid-Open Publication No. 2004-62309 (Patent Document 1) discloses a system that performs rollback from the previous instruction of an illegal instruction when the illegal instruction including an error is detected.
Now, according to the technique disclosed in the Patent Document 1, the detection range of errors is limited by an instruction fetch unit, so, when an error occurs in the other part of the CPU, there is a problem that the error is unable to be corrected by rollback. Further, when an error of the CPU is propagated to a rollback control unit, there is a problem that a rollback process itself malfunctions. Moreover, when control registers at a peripheral module such as a built-in RAM and DMA controller are written with wrong values by the error of the CPU, there are problems that corrections by rollback are impossible and the peripheral module malfunctions.